perm filename F8T[F8,ALS] blob
sn#292846 filedate 1977-07-12 generic text, type T, neo UTF8
*TREE MOBS PLY0 COL0 PLOC KLOC ELOC PLYT PLYD PLYH START
*
*RAM assignments
TREE EQU H'0D00' Start of tree data (14 blocks of 16 bytes each)
MOBS EQU H'0DF0' RAM space for mobility bytes (14 BYTES)
PLY0 EQU H'0DFE' Place for player's ply depth choice
COL0 EQU H'0DFF' Place for color choice (next after PLY0)
*
*Scratch pad assignments
PLOC EQU 3 LISU value for ACTIVE and PASSIVE
KLOC EQU 4 LISU value for KING's and special data
ELOC EQU 5 LISU value for EMPTY's area
*
*Mimimum ply depths
PLYT EQU 3 Ply depth for Robot Tom
PLYD EQU 4 Ply depth for Robot Dick
PLYH EQU 5 Ply depth for Robot Harry
PLYM EQU 7 Ply to stop on first non-jump
*
*Set up initial boards both in SC and in blocks 0 and 1
START LISU PLOC
LISL 0
LI H'FF' Full double row of pieces
LR I,A First byte of ACTIVE
LI H'F0' 1 row only
LR I,A Second byte of active
CLR
LR I,A Part of board with no active pieces
LR I,A Part of board with no active pieces
LR I,A Part of board with no passive pieces
LR I,A Part of board with no passive pieces
LI H'F' 1 row only (in second half of byte)
LR I,A byte of PASSIVE
LI H'FF' Full double row of pieces
LR I,A Last byte with Passive pieces
LISU KLOC
LISL 0
CLR
LR I,A 4 king bytes next (all empty)
LR I,A
LR I,A
LR I,A
LI H'F0' The 4 leftmost bits for pieces that can move RF
LR I,A The MOVE byte
LIS 4 BYTE # 1 RF normal move with no piece debit
LR I,A
LI H'80' Set score at -128 ( a lose unless a move is found.
LR I,A
CLR With position advantage of 0
LR I,A
DCI PLY0 Location to store ply depth number
LIS PLYT The minimum setting for PLY0 (presently 3)
ST Save so 7 can be freed as necessary
LR 7,A Set originally for 3
CLR
ST Save so 8 can also be freed
LR 8,A Set for black to be active
DCI TREE Set to start of data space (presently H'0D00')
LR H,DC Note: H always points to start of a block
PI SCRC Ready for opponents move if he elects BLACK
PI SCRC Ready for Machine to play BLACK
*Now ask for side election or opponents first move
*These are stored in COL0 and PLY0 and the values are transfered to registers
*7 and 8 when the players move is to be verified and when a
*tree search is initiated. Note that these registers are used as CNTR
*counter for image flop, CVAL character value register, TIM2 time counter
*register, and TEMP temporary register used to contain a character that
*is read or to be written.